rz_factor Interface

public interface rz_factor

Module Procedures

private subroutine rz_factor_dbl(a, tau, work, olwork, err)

Factors an upper trapezoidal matrix by means of orthogonal transformations such that . is an orthogonal matrix of dimension N-by-N, and is an M-by-M upper triangular matrix.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N upper trapezoidal matrix to factor. On output, the leading M-by-M upper triangular part of the matrix contains the upper triangular matrix , and elements N-L+1 to N of the first M rows of , with the array tau, represent the orthogonal matrix as a product of M elementary reflectors.

real(kind=real64), intent(out), dimension(:) :: tau

An M-element array used to store the scalar factors of the elementary reflectors.

real(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for @p work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.

private subroutine rz_factor_cmplx(a, tau, work, olwork, err)

Factors an upper trapezoidal matrix by means of orthogonal transformations such that . is an orthogonal matrix of dimension N-by-N, and is an M-by-M upper triangular matrix.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N upper trapezoidal matrix to factor. On output, the leading M-by-M upper triangular part of the matrix contains the upper triangular matrix , and elements N-L+1 to N of the first M rows of , with the array tau, represent the orthogonal matrix as a product of M elementary reflectors.

complex(kind=real64), intent(out), dimension(:) :: tau

An M-element array used to store the scalar factors of the elementary reflectors.

complex(kind=real64), intent(out), optional, target, dimension(:) :: work

An optional input, that if provided, prevents any local memory allocation. If not provided, the memory required is allocated within. If provided, the length of the array must be at least olwork.

integer(kind=int32), intent(out), optional :: olwork

An optional output used to determine workspace size. If supplied, the routine determines the optimal size for @p work, and returns without performing any actual calculations.

class(errors), intent(inout), optional, target :: err

The error object to be updated.